The present invention relates to a distributed processing system comprising a server and a client connected to each other through a network for providing services to a user, a distributed processing method, a computer-readable recording medium with a program for making a computer execute the method recorded therein, a server, and a client device. More specifically, this invention relates to a distributed processing system which reduces work loads to the server and the client both when executing a service program required for realizing the service and also reduces the needs for maintenance of the service program, a distributed processing method, and a computer-readable recording medium with a program for making a computer execute the method recorded therein, a server device and a client device.
In recent years, with consolidation and improvement of infrastructure for communications and also with popularization of LAN (Local Area Network) or the Internet, a distributed processing system enabling users to receive desired services through a network has been generally used. Especially the client server system comprising a plurality of client devices (described simply as client hereinafter) used by the user and a server device (described simply as server) which provides the services, with which a client can receive a desired service by accessing the server, has been established as an optimal network connection system for sharing or managing service resources on the network.
On the other hand, by expanding mutual connection between networks each independently functioning in an area or in a business organization from LAN to WAN (Wide Area Network) and further to Internet, a scale of networks to which a user, namely the client can be connected is becoming larger. Further, a number of users making use of a network, namely a number of the clients belonging to each network is also increasing, and with the expansion of the network scale as described above, work load to a server and communication traffics have been becoming disadvantageously larger.
To solve the problems as described above, at present, there is a tendency for distribution of work load during execution of services by preparing a plurality of servers corresponding to types of services to be provided even in a small-scale network. For instance, various types of server such as a data base server for providing a data base service, a file server for managing files in batch, a mail server for managing electronic mails (emails), and a computational server dedicated for large-scale and complicated computation are distributed on a network.
As described above, because technological progress in the field of software for service transaction on a network is observed, a technological progress in devices connected to a network, especially in hardware available as a client is strongly desired. A client generally comprises a CPU (Central Processing Unit) for executing an operating system or various types of application programs, a memory for storing therein data or programs executed by the CPU, input devices such as a keyboard or a mouse, and a display unit such as a CRT or a liquid crystal display. A server has the same configuration as that of a client, but sometimes peripheral device(s) for providing various types of service may be connected thereto.
As for configuration of a client, the specification is largely classified according to the type of the CPU used, and in many cases, by employing an operating system suited to this CPU the client may be operate as a stand-alone machine.
Thus, even between clients based of different types of hardware specifications, there are needs and inevitability for effective utilization for common resources by connecting the resources to a network. Namely, user""s demands for receiving required services provided through a server from clients in which different types of hardware specifications are used increasingly becoming higher. To satisfy the needs and demands, it is required to provide a service program for accessing a server which provides the services, in addition to execute communications using the same communication protocol as that employed in the network, namely to make the communication interfaces common. This service program is executed on the client, so that the service program must be prepared discretely according to hardware specifications of the client, especially an operating system being used on the client.
In the distributed type of groupware or distributed type of network services or the like based on the conventional technology, functions required for the services are previously registered in a server or a client in the form of the above mentioned service program. This service program flexibly responds to the differences in the interfaces between different types of hardware specifications or differences in the interfaces between the operating systems and provides services from the servers to the clients.
As an example of a case in which a client receives services from a server, a case in which a client acquires desired data from a data base of the server is explained here. The server as a destination for access comprises a storage device such as a large capacity hard disk or the like. This server is a data base server with a data base constructed on a memory area of this storage device. The client has a service program (described as retrieving program hereinafter) previously installed therein for accessing this data base server to retrieve and acquire desired data.
To begin with, the client starts the retrieving program. It is assumed herein that connection with the data base server has been established at this stage. This retrieving program generally includes a query input processing for accepting input of conditions for retrieving (a query), and a result display processing for displaying a result of retrieving transferred from the server. A user completes input of a query using an input device provided in the client and by inputting keywords or successively selecting the categories shown by the retrieving program.
When query input processing is over, the retrieving program transmits information for the inputted query to the data base server, and requests for retrieval and transfer of the data. A service program corresponding to the retrieving program of the client is executed as a daemon in the data base server. The data base server identifies the data desired by the user from the vast amount of data accumulated in a storage device of the server immediately when information for the query is received from the client. Then the data base server transmits the identified data to the client who had requested the data.
The retrieving program in the client receives this data transmitted from the data base server and displays the data on a display unit. Thus, the user can acquire the desired data. As described above, the client can make use of a vast amount of required data only by incorporating a retrieving program which is a relatively small scale program as the service program.
As an another example of the distributed processing system based on the conventional technology, there is the client server system disclosed in Japanese Patent Laid-Open Publication No. HEI 10-21081. This client server system divides an application program being executed by a client (a service program) into a plurality of modules which can be executed discretely. The application program comprising the plurality of modules is stored in a storage device of the server. When a client accesses this server to make use of any service, the client downloads in a storage device of the client only the module(s) required for execution of the program of application programs stored in the server and executes the module(s).
While executing one module, if it is required to execute another module, the client downloads this additionally required module from the server. When downloading a module(s), if a total volume of the down-loaded module (s) exceeds a specified capacity, the surplus module(s) is deleted from the storage device of the client. Thus, even when the client is required to execute an application program requiring a large amount of memory, no excessive work load occurs to resources of the client such as the storage device.
As described above, in the distributed processing system according to the conventional technology, resources on a network can be shared by a plurality of clients. Further, connection to a network can be established among a number of clients each having different specifications by using a common communication interface in order to use the services provided by a server.
However, in the distributed processing system based on the conventional technology, service programs registered in servers and clients are rather fixed, and when it is required to change a portion of functions of a server or to add more functions to a service, the entire service program registered in the server or the client must be modified, which makes it difficult to provide effective maintenance services.
Generally the service programs are clearly classified into those for a server and those for a client, so that it is difficult to shift a place of execution of service processing for distributing a work load to multiple sites according to a processing capability of functions of the client or the server.
Further, in the distributed processing system based on the conventional technology, a user can select a service program to be registered in a client according to resources in or functions of the client, but this restricts a range of services which each client can make use of, and each client can not always use all of the services provided by a server, and this restriction of services dependable client is disadvantageous.
Further in the distributed processing system based on the conventional technology, generally a user or a system manager is required to previously install a service program corresponding to a type of a client for each client, which increases a work load to the user or the system manager.
According to the necessity of installment of a service program as described above, when additional functions are added to a service program or some functions of a service program are changed, it is required to reinstall the service program as a whole in a server or a client device, and maintenance service for each discrete function of a service program is difficult. Further, there is the problem that it is difficult for each of the user to accurately know the time of updating a service program.
In distributed type of groupware or in a distributed type of network service based on the conventional technology, in many cases a multi-user system assuming a plurality of users with respect to one client device is employed. Therefore, even if different functions for a service are to be provided for each user, all functions of the service program are required to be maintained at the client, and this configuration does not always insure efficient utilization of resources of the client.
In the client server system disclosed in Japanese Patent Laid-Open Publication No. HEI 10-21081, a service program is modularized, and only required modules are downloaded into a client, so that the problems as described above, namely the necessity of a work for installing a service program, difficulty in maintenance of each discrete function of a service program, and difficulty in efficient use of resources of a client are solved. However, in this client server system also it is difficult for each user to accurately know the time of updating of a service program.
Further, in the above client server system, when a client receives a service from a server, the client is always required to download a module or modules from the server. When the modules are downloaded, at least a time for this downloading operation is required until a CPU of the client can execute the module, and when new modules are successively called out for execution of a service program, the through-put drops because of an increase in the work load to the client, an increase in the work load to the server, and an increase in the communication traffic.
In the above client server system, effective use of resources of the storage device is possible. However, there is no consideration for reduction of a work load to a CPU when a client accesses a plurality of servers simultaneously, nor for elimination of an excessive work load to a non-volatile memory where the CPU actually executes a service program, so that performance of the entire network including other servers or clients is not always improved.
It is an object of the present invention to provide a distributed processing system enabling smooth utilization of services from a server regardless of difference in types of clients.
In the present invention, a server delivers an initial setting module capable of acquiring a module different for each client and required for execution of a service from a server according to a request of the client, and the client can acquire only the required service modules from the server and make use of the service by acquiring the initial setting module from the server and executing the initial setting module. Thus, even if clients each based on different hardware specifications or running on a different operating system are connected to the network, each client can utilize any service provided by the server only by acquiring the initial setting module according to the client regardless of differences in hardware specifications or operating system. Further, each client can automatically acquire the required initial setting module with the service utilizing unit, so that a user can easily make use of any service provided by the server without being required to be aware of a type of the client device.
In the present invention, a server comprises a common module which can run in any environment for execution, so that, when resources in the server are short, a place of execution of the common module which should originally be executed in the server can be shifted to another server. Thus, for instance, during execution of a service program, when resources in the server become short because of simultaneous access by many clients to the server, the common module which should have been executed by the server can be executed in another server in which resources are still not short, and drop of throughput due to shortage of resources in a server can be evaded.
In the present invention, a common module which can be executed in the server""s environment or in the client""s environment is provided, so that, when resources in the client become short, the place of execution of the common module to be originally executed in the client can be shifted to the server. Thus, for instance, when resources in the client become short during execution of a service program due to execution of other application program or the like, the common module having been executed in the client can be executed in the server, and drop of throughput due to shortage of resources in a client can be prevented.
In the present invention, a server can notify a client of updating of a service module, and the notice is given to any client to which the service program was delivered in the past. Thus, the user of the client is not required to be aware of a period of updating of the module especially in the server, and at the same time efficient processing for updating a service module is possible.
With the present invention, a server delivers an initial setting module enabling delivery of a service module different for a type of each client. Thus, when it is necessary to change a service module required for a service program for utilizing a service in a client, the requirement can be satisfied only by changing the contents of the initial setting module, so that management of a number of modules present for each client type becomes easy.
In the present invention, a common module operable in an environment for execution is provided in a server, and when resources in the server become short, a place of execution of the common module which should originally have been executed in the server can be shifted to an another server. Thus, when resources in the server become short, the common module which should have originally be executed in the server can be executed in the another server in which resources are still not short, and drop of throughput of a server can be prevented.
With the present invention, of a plurality of common modules, only the common modules required to dissolve shortage of resources are shifted to other servers for execution therein, so that an excessive work load to resources in servers to be started can be prevented.
With the present invention, access to a common module requested to start can directly be made not only by a server which had issued the request, but also by all clients requiring execution of the common module, so that shared use of a common module requested to start can easily be realized.
With the present invention, a place of execution of a common module is managed with a module execution place table, so that access to a desired common module can easily be made by referring to this module execution place table.
With the present invention, updating of a service module is notified only to the clients requiring acquisition of an updated service module by referring to a module delivery destination table, so that efficient processing for updating a service module can be made.
In the present invention, a client can acquire only the service modules required in the client by acquiring an initial setting module from a server with a service utilizing unit and executing the initial setting module. Thus, even when clients each based on different specifications or running on a different operating system are connected to the network, each client can make use of any service provided by the server regardless of difference in specifications or operation system, and the user can easily make use of any services provided by the server without being required to be aware of a type of the client.
In the present invention, a mechanism for checking the functions and processing capability of a client is provided in a service utilizing unit executed in the client, and a service module to be acquired from a server can be selected according to a result of checking acquired by executing this checking mechanism when the initial setting module is executed. Thus, for instance, when a result of checking indicates drop of processing capability of the client, only the service modules that can be executed in the client are acquired and executed, while execution of other service modules required for using the service can be requested to other servers, so that smooth utilization of services is possible in a client.
In the present invention, when a service module required for using the service is not registered in a client data management table, the service module is acquired from the server and is registered in the client data management table. Thus, only a minimum number of required service modules can be stored in a attached storage device, and effective utilization of resources in a client can be realized.
In the present invention, when resources in a client become short during execution of a common module operable in an environment for execution client, the place of execution of the common module which should have originally be executed in the client can be shifted to a server. Thus, when shortage of resources occurs in the client, a common module having been executed in the client can be executed by the server in which resources thereof are still not short and drop of throughput in a client can be prevented.
With the present invention, of a plurality of common modules being executed, only the common modules required for dissolving shortage of resources can be started in a server, so that an excessive work load to resources in a server to be started can be prevented.
With the present invention, a place of execution of a common module can be managed with a module execution place table, so that access to a desired common module can easily be made by referring to this module execution place table.
With the present invention, when updating of server module is notified from a server, the updated service module is acquired with an updated module acquiring unit, so that a user is not required to be aware of a period for updating a module in a server and at the same time efficient processing for updating a service module is possible.
Other objects and features of this invention will become understood from the following description with reference to the accompanying drawings.